#pragma once

/**							**\
	Controllers
	#define functionality
\**							**/
//Cuts down how much stuff windows.h acctually uses
#define WIN32_LEAN_AND_MEAN

#define DIRECTINPUT_VERSION 0x0800

#define DEGTORAD(degree) ((D3DX_PI / 180.0f) * (degree)) // converts from degrees to radians

//Converts an object derived from the base object to 
// a base object pointer so its easier to manipulate
#define BASEOBJP(Object) ((BaseObject*)&Object)

//Turns geysers and minecarts on and off on load
#define SPECIALS

//#define SMALL
#define MEDIUM
//#define LARGE
#ifdef SMALL
#undef MEDIUM
#undef LARGE
#endif
#ifdef MEDIUM
#undef SMALL
#undef LARGE
#endif
#ifdef LARGE
#undef SMALL
#undef MEDIUM
#endif

//Only does a return if the function in question did
// not succeed
#define RETURN_CHECK(Function)	\
{								\
	if(Function != SUCCEED)		\
		return Function;		\
}								\


/**								**\
   Includes native to everything
\**								**/

#include <Windows.h>
#include <MMSystem.h>
#pragma comment (lib,"Winmm.lib")
#include <time.h>
#include <assert.h>
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <sstream>
using namespace std;
#include "Enums.h"
#include "Colors.h"
#include "Vector.h"

using namespace std;

#include <d3d9.h>	
#pragma comment(lib, "d3d9.lib")
#include <d3dx9.h>
#pragma comment(lib, "d3dx9.lib")
#include <dxerr.h>
#pragma comment(lib, "dxerr.lib")
#include <dinput.h>
#pragma comment(lib, "dinput8.lib")
#pragma comment(lib, "dxguid.lib")

#include "resource.h"




/**				**\
   Global values
\**				**/

#define SCREEN_WIDTH	1024
#define SCREEN_HEIGHT	768
#define WAIT_TIME		0.1
#define LARGE_MAP_SIZE	14
#define MEDIUM_MAP_SIZE	10
#define SMALL_MAP_SIZE  6
#define PosMod			64
//To be made proper later
#define LLEFTSIDE		16
#define SLEFTSIDE		592
//only one working
#define MLEFTSIDE		384



